<?php
// +----------------------------------------------------------------------
// | likeadmin快速开发前后端分离管理后台（PHP版）
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码，建议反馈是我们前进的动力
// | 开源版本可自由商用，可去除界面版权logo
// | gitee下载：https://gitee.com/likeshop_gitee/likeadmin
// | github下载：https://github.com/likeshop-github/likeadmin
// | 访问官网：https://www.likeadmin.cn
// | likeadmin团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\api\service\ai;

class ChatService
{
    private \OpenAI\Client $client;

    public function __construct()
    {
        $api_key      = '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';
        $this->client = \OpenAI::factory()
            ->withApiKey($api_key)
            //->withOrganization('openai-test1') // default: null
            ->withBaseUri('openai.allwin.top/v1') // default: api.openai.com/v1
            ->withHttpClient($client = new \GuzzleHttp\Client(['verify' => false])) // default: HTTP client found using PSR-18
            ->withHttpHeader('X-My-Header', 'foo')
            ->withQueryParam('my-param', 'bar')
            ->withStreamHandler(fn(RequestInterface $request): ResponseInterface => $client->send($request, [
                'stream' => false // Allows to provide a custom stream handler for the http client.
            ]))
            ->make();
    }


    public function chat($content)
    {
        $res = $this->client->chat()->create([
            'model'    => 'gpt-3.5-turbo',
            'messages' => $content
        ]);
        return $res->toArray();
    }


}